Recently, for both information distribution of broadcasting stations and information reception of general households, such apparatuses have been proposed that treat picture information by digitizing it, and operate under the MPEG (Moving Picture Experts Group) scheme or the like to compress the information through orthogonal transformation such as discrete cosine transformation, and motion compensation, with making use of redundancy of picture information, in order to realize efficient transmission and storage of the information.
Specifically, the MPEG2 (ISO/IEC 13818-2) is defined as a general image coding method, and is widely used in various applications for professionals and consumers because both interlace images and noninterlace image, and standard resolution images and high fine images can be treated.
With the MPEG compression method, high compression rate and good picture quality can be realized by assigning a coding amount (bit rate) of 4-8 [Mbps] to standard resolution interlace images of 720×480 pixels, and a bit rate of 18-22 [Mbps] to high resolution interlace images of 1920×1088 pixels.
The MPEG2 mainly executes high picture quality coding for broadcasting, but cannot cope with a coding amount (bit rate) lower than that in the MPEG1, that is, a coding method at a higher compression rate.
The needs for such coding method may increase as portable terminals become popular. Therefore, an MPEG4 coding method was standardized. The guidelines for image coding method were approved as international standards of ISO/IEC 14496-2 in December, 1998.
Further, for image coding for video conference, standard guidelines called H. 26L (ITU-T Q6/16 VCEG) are progressing. As compared with the conventional coding methods such as MPEG2 and MPEG4, more operations are required for encoding and decoding but higher encoding efficiency can be realized.
In addition, as a part of popularization of the MPEG4, a JVT coding method which is realized based on the H. 26L and by incorporating functions that the H. 26L does not have has been standardized to realize higher coding efficiency. According to a schedule for standardization, this method would be internationally standardized in the name of H. 26L and MPEG-4 Part 10 (Advanced Video Coding) in March, 2003.
The JVT coding method will be now described. An input picture signal is digitized through the A/D conversion, and then frame pictures are rearranged according to a GOP (Group of Pictures) structure of picture compression information for output.
As to a picture to be subjected to intra coding, an input picture and differential information of pixel values created through intra prediction are subjected to an orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation, and then the resultant transformation coefficient is quantized.
The quantized transformation coefficient is subjected to reversible encoding such as variable length encoding and arithmetic encoding, and then is stored and output as picture compression information. The quantization process is under rate control in a feedback manner according to the storage state.
The quantized transformation coefficient is subjected to a dequantization process and inverse orthogonal transformation to create decoded picture information. From this information, block distortion is removed through a de-blocking filtering process. Then the resultant information is subjected to an intra prediction process while stored in a frame memory.
In this intra prediction process, information on an intra prediction mode which was applied to blocks/macroblocks is subjected to the reversible encoding process, and is encoded as part of header information of the picture compression information.
In addition, as to a picture to be subjected to inter coding, picture information is subjected to a motion prediction/compensation process and, at the same time, picture information to be referred is read from the frame memory. The information is subjected to the motion prediction/compensation process to create reference picture information. The reference picture information is converted to a differential signal from the picture information.
In the motion compensation/prediction process, motion vector information is simultaneously subjected to the reversible encoding process to create information to be inserted in the header part of picture compression information. The other processes are the same as those applied to picture compression information to be subjected to the intra coding.
In this JVT coding method, when picture information to be input is interlaced scanning, two macroblocks can be encoded in a field mode or a frame mode as one pair (hereinafter, referred to as macroblock pair).
An intra prediction method defined in the JVT coding method will be hereinafter described.
Parameters to be input for the intra prediction process are mb_type, prev_intra4×4 red_mode_flag (if available), rem_intra4×4_pred_mode (if available), intra_chroma_pred_mode (if available), pixel values of neighboring macroblocks (or neighboring macroblock pairs). In addition, parameters to be output are predicted pixel values for the macroblocks (or the macroblock pairs). The intra prediction is performed by using pixel values before the de-blocking filtering process.
The intra prediction method for luminance signals will be now described. As described below, the process for luminance signals is different depending on whether the macroblocks are in the intra 4×4 mode or in the intra 16×16 mode.
First, the process in the intra 4×4 mode is as follows.
This process is applied when mb_part_pred_mode (mb_type, 0) is equal to Intra—4×4. Parameters to be input are prev_intra4×4_pred_mode_flag, rem_intra4×4_pred_mode (if available), and the pixel values (if available) of neighboring luminance blocks before the de-blocking filtering process. Outputs are the prediction values of a luminance signal for the macroblocks. An order of scanning luminance signal 4×4 blocks is shown in FIG. 4.
Now, a process to determine whether the intra prediction of the blocks is “available” or “not available” when the value of adaptive_frame_field_flag is 0 will be described. Inputs for this process are the positions of the luminance blocks, and the values of luminance pixels (before the de-blocking filtering process) subjected to the decoding process, which is included in neighboring blocks. Outputs indicates whether the pixel values of A to M shown in FIG. 5 are “available”. 4×4LumaBlkLoc is indicated by 4×4LumaBlkIdx. This is defined as the position of the upper left pixel value of the 4×4Luminance block. The pixel values included in the 4×4Luminance block, which is indicated by the 4×4LumaBlkIdx, are a to p in FIG. 5, and these are predicted from the neighboring pixel values A to M. The positions of the pixel values are indicated by the 4×4LumaBlkLoc. For example, the position of d is represented as follows:x: 4×4LumaBlkLoc[4×4LumaBlkIdx][0]+3y: 4×4LumaBlkLoc[4×4LumaBlkIdx][1]  (1)
In addition, the position of A is represented as follows:x: 4×4LumaBlkLoc[4×4LumaBlkIdx][0]y: 4×4LumaBlkLoc[4×4LumaBlkIdx][1]−1  (2)
When at least one of the following first to third conditions is satisfied, the pixel values A to M are “not available”. The first is that the pixel is out of a picture or out of a slice. The second is that the pixel belongs to a block which is processed after the block in the decoding process. The third is that constrainde_intra_pred_flag=0 and the block belongs to an inter macroblock.
When E to H are “not available” and D is “available”, the E to H are taken as “available” and D is used as their values.
Next, a process when the value of mb_adaptive_frame_filed flag is 1 and the value of field_pic_flag is 0 will be described. The neighboring pixels A to M for the pixel values a to p shown in FIG. 5 are defined as follows. That is, when the macroblock is in the frame decoding mode, the same process as the case where the value of mb_adaptive_field_flag is 0 will be performed.
When the macroblock is in the field decoding mode and is the top macroblock, the neighboring pixel values are defined as follows:A:x: 4×4LumaBlkLoc[4×4LumaBlkIdx][0]y: 4×4LumaBlkLoc[4×4LumaBlkIdx][1]−2I:x: 4×4LumaBlkLoc[4×4LumaBlkIdx][0]−1y: 4×4LumaBlkLoc[4×4LumaBlkIdx][1]  (3)
In addition, when the macroblock is in the field decoding mode and is the bottom field mactroblock, the neighboring pixel values are defined as follows:A:x: 4×4LumaBlkLoc[4×4LumaBlkIdx][0]y: 4×4LumaBlkLoc[4×4LumaBlkIdx][1]−1I:x: 4×4LumaBlkLoc[4×4LumaBlkIdx][0]1−1y: 4×4LumaBlkLoc[4×4LumaBlkIdx][1]  (4)
Next, a process to create intra prediction values will be described. Inputs for this process are prev_intra4×4_pred_flag, rem_intra4×4_pred_mode, the position of 4×4 luminance block specified by 4×4LumaBlkIdx, and LumaBlkLoc[4×4LumaBlkIdx]. Output is Intra4×4LumaPredMode[4×4LumaBlkIdx]. FIG. 6 shows ntra4×4LumaPredMode[4×4LumaBlkIdx] and the name of a corresponding prediction mode.
When the values of Intra4×4LumaPredMode[4×4LumaBlkIdx] are 0, 1, 3, 4, 5, 6, 7, and 8, the prediction directions are shown in FIG. 7.
When adaptive_frame_field_flag is 0, or when field_pic_flag is 1, the addresses of the neighboring macroblocks and “availability” are detected as follows. An input for this process is MbAddress (address of the macroblock) and outputs are MbAddressA (address of a macroblock locating on the left side of the macroblock), MbAddressB (address of a macroblock locating above the macroblock), and the addresses “availability” of these two macroblocks.
As to the address MbAddress of a macroblock, when any of the following first to fourth conditions is satisfied: the first is that MbAddress<0, and the second is that MbAddress>Max MbAddress−1, the third is that a macroblock specified by MbAddress belongs to a different slice, and the fourth is that the macroblock specified by MbAddress has not been decoded, the macroblock specified by this MbAddress is taken as “not available”.
This process is applied to neighboring macroblocks A and B as follows. That is, in the first process, an input is that MbPairAddressA=MbPairAddress−1, and an output is whether MbPairAddressA is “available”. In the second process, an input is that MbPairAddressB=MbPairAddress−(frame_width_in_mbs_minus 1+1) and an output is whether MbPairAddressB is “available”.
When adaptive_frame_field_flag is 0 or when Field_pic_flag is 1, the addresses of neighboring macroblocks and “availability” are detected as follows. An input parameter for this process is MbAddressA and outputs are (four) variable numbers of “ExIntra4×4LumaPred”.
First, as to a macroblock locating on the left side of the macroblock, when the macroblock specified by MbAddressA is “available” and the mb_type of the macroblock specified by MbAddressA is I—4×4 or SI, the value of ExIntra4×4LumaPredMode can be obtained as follows:for (i=0, i<4, 1i++)ExtIntra4×4LumaPreMode[(i+1)*5]=Intra4×4LumaPreMode[4×4LumaBlkScan(3,1)]  (5)
Intra4×4LumaPredMode is a value assigned to the macroblock specified by MbAddressA.
When the macroblock specified by MbAddressA is not “available” or when its mb_type is not I—4×4 nor SI, the value of ExIntra4×4LumaPredMode can be obtained by the following process:for (i=0, i<4, 1i++)ExtIntra4×4LumaPredMode[(i+1)*5]=2  (6)
Next, as to a macroblock locating above the macroblock, an input parameter is, parameters as MbAddressB outputs are (four) variable values of “ExtIntra4×4LumaPred”.
When a macroblock specified by MbAddressB is “available” and the macroblock mb_type_specified by MbAddressB is I—4×4 or SI, the value of ExIntra4×4LumaPredMode can be obtained by the following process.for (i=0, i<4, 1i++)ExtIntra4×4LumaPredMode(i+1)=Intra4×4LumaPredMode[4×4LumaBlkScan(i,3)  (7)
Intra4×4LumaPredMode is a value assigned to the macroblock specified by MbAddressB.
When a macroblock specified by MbAddressB is not “available” or when its mb_type is not I—4×4 nor SI, the value of ExIntra4×4LumaPredMode can be obtained by the following process.for (i=0, i<4, 1i++)ExtIntra4×4LumaPredMode(i+1)=2  (8)
Next, a process to extract information on the intra prediction mode of a neighboring macroblock pair when the field/frame adoptive encoding is performed on a macroblock basis as described above will be described.
A process which is performed when mb_adaptive_field_flag of the macroblock is 1 and field_pic_flag is 0 will be described.
First, when the macroblock pair is in the frame mode, input information are MbPairAddressA and MbPairAddressB, and output information are (8 in total) ExIntra4×4LumaPredModeTop and ExIntra4×4LumaPredModeBottom of the macroblock for each of top macroblock and bottom macroblock.
For the top macroblock, MbPairAddress A is input as MbAddressA in the process described in the above equation (5), and ExIntra4×4LumaPredModeTop is output as a result. In addition, MbPairAddressB is input as MbAddressB described in the above equation (7), and ExIntra4×4PredModeTop is output as a result.
Next, for Bottpm Macroblock, MbPairAddressA is input as MbAddressA in the process described in the above equation (5), and ExIntra4×4LumaPredModeBottom is output as a result. In addition, MbPairAddressB is input as MbAddressB in the process described in the above equation (7), and ExIntra4×4LumaPredModeBottom is output as a result.
First, when the macroblock pair is in the field mode, input information are MbPairAddressA and MbPairAdressB, and output information are (8 in total) ExIntra4×4LumaPredModeTop and ExIntra4×4LumaPredModeBottom of the macroblock for each of top macroblock and bottom macroblock.
A process for MbPairAddressA of the neighboring macroblock is as follows. That is, MbPairAddressA is input as MbAddressA in the process described in 8. 3. 1. 2. 3. 1, and ExIntra4×4PredModeTop is output as a result. In addition, MbPairAddressA in the process described in the above equation (5) is input, and ExIntra4×4LumaPredModeBottom is output as a result.
When MbPairAddressB of a neighboring macroblock pair is in the filed mode or is not “available”, the following process is applied. That is, for the top macroblock of the MB Pair, the process described in the above equation (7) is applied, and as its input, top macroblock of the MB Pair specified by MbPairAddressB is used as MBAddressB. Its output is ExIntra4×4LumaPredModeTop. In addition, bottom macroblock of MBPair specified by the MBPairAddressB is used as MBAddressB. Its output is ExIntra4×4LumaPredModeBottom.
When a neighboring macroblock pair MbPairAddressB is in the frame mode, the following process is applied. That is, for top macroblock of the MB Pair, the process described in the above equation (7) is applied, and as its input, the bottom macroblock of MB Pair specified by MBAddressB is used as MBAddressB. Its output is ExIntra4×4LumaPredModeTop. For bottom macroblock of the MB Pair, the process described in the above equation (7) is applied and as its input, the bottom macroblock of MBPair specified by MBPairAddressB is used as MBAddressB. And its output is ExIntra4×4LumaPredModeBottom.
FIG. 8 shows the above processes in a case where the macroblock pair is in the field mode.
Next, the decoding process of Intra4×4LumaPredMode for the macroblock will be described.
This process is applied when adaptive_frame_field_flag is 1, or when field_pic_flag is 1. Input information are prev_intra4×4pred_mode_flag, rem_intra4×4_pred_mode, and ExIntra4×4LumaPredMode. Output information is Intra—4×4LumaPredMode for the macroblock (specified by MbAddress). This process is described with pseudo codes as follows:for (4×4LumaBlkIdx=0,4×4LumaBlkIdx<16,4×4LumaBlkIdx++{i=4×4LumaBlkIdx+RasterTo4×4LumaBlkOffset (4×4LumaBlkIdx)Ext4×4LumaBlkIdx=5*(i/4+1)+i %4+1PredIntra4×4LumaPredMode=Min(ExIntra4×4LumaPredMode [Ext4×4LumaBlkIDX−1],ExtIntra4×4LumaPredMode [Ext4×4LumaBlkIdx−5]) if(prev_intra4×4pred_mode_flag—[4×4LumaBlkIdx]) Intra4×4LumaPredMode[4×4LumaBlkIdx]=PredIntra4×4LumaPredMode else{if(rem_itnra4×4_Pred_mode[4×4LumaBlkIdx]<PredIntra4×4LumaPredMode) Intra4×4LumaPredMode[4×4LumaBlkIdx]=rem_intra—4×4_pred_moded[4×4LumaBlkIdx] else Intra4×4LumaPredMode[4×4LumaBlkIdx]=rem_intra—4×4_pred_mode[4×4LumaBlkIdx]+1}ExtIntra4×4LumaPredMode[Ex4×4LumaBlkIdx]=Intra4×4LumaPredMode[4×4LumaBlkIde]}  (9)
Next, a decoding process of Intra4×4LumaPredMode for a macroblock pair (MB Pair) as described above will be described.
This process is applied when mb_adaptive_frame_field_flag is 1 and field_pic_flag is 0.
Prev_intra4×4_pred_mode_flag, rem_intra4×4_pred_mode, ExIntra4×4LumaModePredTop for top macroblock of the macroblock pair are inputs for the process described in the equation (8), and Intra4×4LumaPredMode which is its output is assigned to the top macroblock of the macroblock pair.
Prev_intra4×4_pred_mode_flag, rem_intra4×4_pred_mode, and ExIntra4×4LumaPredMode for bottom macroblock of the macroblock pair are inputs for the process described in the equation (8), and Intra4×4LumapredMode which is its output is assigned to the bottom macroblock of the macroblock pair.
Next the decoding process for the intra prediction in the intra 4×4 mode will be described.
A parameter to be input is Intra4×4LumaPredMode[4×4LumaBlkIdx] which is defined for neighboring pixel values A to M and the 4×4 block shown in FIG. 5, and parameters to be output are predicted pixel values for the 4×4 block specified by 4×4LumaBlkIdx. These will be now described depending on the value of Intra4×4LumaPredMode[4×4LumaBlkIdx]. Any intra prediction mode is used.
A Vertical prediction method will be hereinafter described. This prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 0. It is applied only when A, B, C, D are “available”. Their predicted values are as follows:a, e, i, m: Ae, f, g, h: Bi, j, k, l: cm, n, o. p: D  (10)
A Horizontal prediction method will be hereinafter described. Tis prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 1. It is applied only when I, J, K, L are “available”. Their predicted values are as follows:a, b, c, d: Ie, f, g, h: Ji, j, k, l: Km, n, o, p: L  (11)
A DC prediction method will be hereinafter described. This prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 2. The following value is used as a predicted value for all of the pixels a-p.
That is, when A, B, C, D, I, J, K, L are all “available”, the predicted value is taken as:(A+B+C+i+j+k+l+4)>>3  (12)
When A, B, C, D are all “unavailable”, the predicted value is taken as:(I+J+K+L+2)>>2  (13)
When I, J, K, L are all “unavailable”, the predicted value is taken as:(A+B+C+D+2)>>2  (14)
When A, B, C, D, I, J, K, L are all “available”, the predicated value is taken as 128.
Diagonal_Down_Left prediction will be hereinafter described. This prediction method is applied when Intra4×4LumapredMode[4×4LumaBlkIdx] is 3. It is applied only when A, B, C, D, I, J, K, L, M are all “available”. Their predicated values are as follows:a: (A+2B+C+2)>>2b, e: (B+2C+D+2)>>2c, f, i: (C+2D+E+2)>>2d, g, j, m: (D+2E+F+2)>>2h, k, n: (E+2F+G+2)>>2l, o: (F+2G+H+2)>>2p: (G+H+2)>>2  (15)
Diagonal_Down_Right prediction will be hereinafter described. This prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 4. It is applied only when A, B, C, D, I, J, K, L, M are “available”. Their predicted values are as follows:m: (J+2K+L+2)>>2i, n: (I+2J+K+2)>>2e, j, o: (M+2I+J+2)>>2a, f, k, p: (A+2M+I+2)>>2b, g, l: (M+2A+B+2)>>2c, h: (A+2B+C+2)>>2d: (B+2C+D+2)>>2  (16)
Diagonal_Vertical_Right prediction will be hereinafter described. This prediction method is applied when Intra4×4LumaPredmode[4×4LumaBlkIdx] is 5. It is applied only when A, B, C, D, I, J, K, L, M are “available”. Their predicted values are as follows:a, j: (M+A+1)>>1b, k: (A+B+1)>>1c, l: (B+C+1)>>1d: (C+D+1)>>1e, n: (I+2M+A+2)>>2f, o: (M+2A+B+2)>>2g, p: (A+2B+C+2)>>2i: (M+2I+J+2)>>2m: (I+2J+K+2)>>2  (17)
Horizontal_Down will be hereinafter described. This prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 6. It is applied only when A, B, C, D, I, J, K, L, M are “available”. Their predicted values are as follows:a, g: (M+I+1)>>1b, h: (I+2M+A+2)>>2c: (M+2A+B+2)>>2d: (M+2A+C+2)>>2e, k: (I+J+1)>>1f, l: (M+2I+J+2)>>2i, O: (J+K+1)>>1j, p: (I+2J+K+2)>>2m: (K+L+1)>>1n: (J+2K+L+2)>>2  (18).
Vertical_Left predicted values will be now described. This prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 7. It is applied only when A, B, C, D, I, J, K, L, L, M are “available”. Their predicted values are as follows:a: (A+B+1)>>1b, i: (B+C>+1)>>1C, j: (C+D+1)>>1d, k: (D+E+1)>>1l: (E+F+1)>>1e: (A+2B+C+2)>>2f, m: (B+2C+D+2)>>2g, n: (C+2D+E+2)>>2h, o: (D+2E+F+2)>>2p: (E+2F+G+2)>>2  (19)
Horizontal_Up prediction will be now described. This prediction method is applied when Intra4×4LumaPredMode[4×4LumaBlkIdx] is 8. It is applied only when A, B, C, D, I, J, K, L, M are “available”. Their predicted values are as follows:a: (I+J+1)>>1b: (I+2J+K+2)>>2c, e: (I+K+1)>>1d, f: (J+2K+L+2)>>2g, i: (K+L+1)>>1h, j: (K+3L+2)>>2k, l, m, n, o, p: L  (20)
An intra prediction method when the luminance signal belongs to a macroblock which is in the intra 16×16 mode will be now described. This process is applied when mb_part_pred_mode (mb_type, 0) is equal to Intra16×16. Parameters to be input are mb_type of the macroblock and the neighboring pixel values of the macroblock before the de-blocking filtering process, and parameters to be output are predicted pixel values for the macroblock.
Hereinafter, the pixel values belonging to the macroblock are represented as P (x, y); x, y=0 . . . 15. In addition, the neighboring pixel values are represented as P(x, −1) and P(−1, y); =−1 . . . 15.
Assume that P(x, −1) and P(−1, y) are “unavailable” when any of the followings is satisfied: they does not exist in the picture or the slice; and neighboring pixel values belong to non-intra macroblocks and constrained_intra_pred_flag is 1.
In the intra 16×16 mode, the intra prediction is conducted with any of the following four methods described below.
Mode 0 is vertical prediction, and is applied only when P(x, −1); x, y=−1 . . . 15 is “available”. The created predicted values are as follows:Pred(x,y)=P(x,−1); x, y=0 . . . 15  (21)
Mode 1 is horizontal prediction, and is applied only when P(−1, y); x, y=−1 . . . 15 is “available”. The created predicted values are as follows:Pred(x,y)=P(−1, y); x, y=0 . . . 15  (22)
Mode 2 is DC prediction and predicted values are created as follows. That is, when P(x, −1) and P(−1, y); x, y=−1 . . . 15 are all “available”,
                                                        Pred              ⁡                              (                                  x                  ,                  y                                )                                      =                          [                                                                    ∑                                                                  x                        ′                                            =                      0                                        15                                    ⁢                                      P                    ⁡                                          (                                                                        x                          ′                                                ,                                                  1                          -                                                                    )                                                                      +                                                      ∑                                                                  y                        ′                                            =                      0                                        15                                    ⁢                                      P                    ⁡                                          (                                                                        1                          -                                                ,                                                  y                          ′                                                                    )                                                                      +                16                            ]                                >>          5                ⁢                                  ⁢                              With            ⁢                                                  ⁢            x                    ,                      y            =                          0              ⁢                                                          ⁢              …              ⁢                                                          ⁢              15                                                          (        23        )            
When P(x, −1); x, y=−1 . . . 15 are “not available”,
                                                        Pred              ⁡                              (                                  x                  ,                  y                                )                                      =                          [                                                                    ∑                                                                  y                        ′                                            =                      0                                        15                                    ⁢                                      P                    ⁡                                          (                                                                        -                          1                                                ,                                                  y                          ′                                                                    )                                                                      +                8                            ]                                >>          4                ⁢                                  ⁢                              With            ⁢                                                  ⁢            x                    ,                      y            =                          0              ⁢                                                          ⁢              …              ⁢                                                          ⁢              15                                                          (        24        )            
When P(−1, y); x, y=−1 . . . 15 are “not available”,
                                                        Pred              ⁡                              (                                  x                  ,                  y                                )                                      =                          [                                                                    ∑                                                                  x                        ′                                            =                      0                                        15                                    ⁢                                      P                    ⁡                                          (                                                                        x                          ′                                                ,                                                  -                          1                                                                    )                                                                      +                8                            ]                                >>          4                ⁢                                  ⁢                              With            ⁢                                                  ⁢            x                    ,                      y            =                          0              ⁢                                                          ⁢              …              ⁢                                                          ⁢              15                                                          (        25        )            
P(x, −1) and P(−1, y); x, y=−1 . . . 15 are all “not available”, the predicted value is taken as 128.
Mode 3 is plane prediction. This prediction mode is applied only when P(x, −1) and P(−1, y); x, y=−1 . . . 15 are all “availeble”. The predicted values are created as follows:
                              Pred          ⁡                      (                          x              ,              y                        )                          ⁢                                  ⁢                  Clipl          ⁡                      (                                          (                                  a                  +                                      b                    ·                                          (                                              x                        -                        7                                            )                                                        +                                      c                    ·                                          (                                              y                        -                        1                                            )                                                        +                  16                                )                            >>              5                        )                          ⁢                                  ⁢                  a          =                      16            ·                          (                                                P                  ⁡                                      (                                                                  1                        -                                            ,                      15                                        )                                                  +                                  P                  ⁡                                      (                                          15                      ,                                              -                        1                                                              )                                                              )                                      ⁢                                  ⁢                              b            =                          (                                                5                  ·                  H                                +                32                            )                                >>          6                ⁢                                  ⁢                              c            =                          (                                                5                  ·                  V                                +                32                            )                                >>          6                ⁢                                  ⁢                  H          =                                    ∑                              x                -                1                            8                        ⁢                          x              ·                              (                                                      P                    ⁡                                          (                                              7                        +                                                  x                          ,                                                -                        1                                            )                                                        -                                      P                    ⁡                                          (                                              7                        -                                                  x                          ,                                                -                        1                                            )                                                                      )                                                    ⁢                                  ⁢                  v          =                                    ∑                              y                =                1                            8                        ⁢                          y              ·                              (                                                      P                    ⁡                                          (                                                                                                    -                            1                                                    ,                          7                                                +                        y                                            )                                                        -                                      P                    ⁡                                          (                                                                                                    -                            1                                                    ,                          7                                                -                        y                                            )                                                                      )                                                                        (        26        )            Clip1 here represents a clipping process within a range of 0 to 255.
The intra prediction for color difference signals will be now described. This process is applied to only I macroblocks and SI macroblocks. Input parameters are intra_chroma_pred_mode and neighboring pixel values before the de-blocking filtering process. Output parameters are predicted values for the color difference signal of the macroblock.
Hereinafter, the pixel values belonging to the macroblock are represented by P(x, y); x, y=0 . . . 7. In addition, the neighboring pixel values are represented by P(x, −1) and P(−1, y)=−1 . . . 7.
The intra prediction mode for color difference signals can be set independently from that for luminance signals.
Assume that P(x, −1) and P(−1, y) are “unavailable” when any of the following conditions is satisfied: they do not exist in the picture or the slice; and neighboring pixel values belong to non-intra macroblocks and constrained_intra_pred_flag is 1.
Mode 0 is DC prediction and its predicted values are as, follows. That is, when P(x, −1) and P(−1, y) are “available”, the following is satisfied.
                                                                                          Pred                  ⁡                                      (                                          x                      ,                      y                                        )                                                  ⁢                                                                  [                                  [                                                            ∑                                              n                        =                        0                                            7                                        ⁢                                          (                                                                        P                          ⁡                                                      (                                                                                          -                                1                                                            ,                              n                                                        )                                                                          +                                                  P                          ⁢                                                                                                          ⁢                          8                          ⁢                          n                          ,                                                -                        1                                            )                                                        )                                ]                            +              8                        ]                    >>          4                ⁢                                  ⁢                              With            ⁢                                                  ⁢            x                    ,                      y            =                          0              ⁢                                                          ⁢              …              ⁢                                                          ⁢              7                                                          (        27        )            
When P(−1, y) is “not available”, the following is satisfied.
                                                        Pred              ⁢                                                          ⁢                                                (                                      x                    ,                    y                                    )                                ⁢                                                                  [                                  [                                                            ∑                                              n                        =                        0                                            7                                        ⁢                                          P                      ⁡                                              (                                                                              n                            ,                                                    -                          1                                                )                                                                              ]                                ]                                      +            4                    >>          3                ⁢                                  ⁢                              With            ⁢                                                  ⁢            x                    ,                      y            =                          0              ⁢                                                          ⁢              …              ⁢                                                          ⁢              7                                                          (        28        )            
When P(x, −1) is “not available”, the following is satisfied.
                                                                        Pred                ⁡                                  (                                      x                    ,                    y                                    )                                            ⁢                                                          [                              [                                                      ∑                                          n                      =                      0                                        7                                    ⁢                                      P                    ⁡                                          (                                                                        -                          1                                                ,                        n                                            )                                                                      ]                            ]                        +            4                    >>                      3            ⁢                                                  ⁢            With            ⁢                                                  ⁢            x                          ,                  y          =                      0            ⁢                                                  ⁢            …            ⁢                                                  ⁢            7                                              (        29        )            
When P(x, −1) and P(−1, y) are “not available”, the predicted value is taken as 128.
Mode1 is horizontal prediction and is applied only when P(−1, y) is “not available”. Its predicted values are shown as follows:Pred(x,y)=P(−1,y), x, y=0 . . . , 7  (3.0)
Mode2 is vertical prediction, and is applied only when P(x, −1) is “available”. The predicted values are shown as follows:Pred(x,y)=P(x,−1), x, y=0, . . . , 7  (31)
Mode3 is plane prediction, and is applied only when P(x, −1) and P(−1, y) are “available”. The predicted values are shown as follows:
                                              ⁢                                                                                                  Pred                    ⁡                                          (                                              x                        ,                        y                                            )                                                        =                                    ⁢                                      Clip                    ⁢                                                                                  ⁢                    1                    ⁢                                          (                                              (                                                  a                          +                                                      b                            ·                                                          (                                                              x                                -                                3                                                            )                                                                                +                                                      c                            ·                                                          (                                                              y                                -                                3                                                            )                                                                                +                                                                                                                                                                                                                                                                                    ⁢                        16                        )                                            >>                      5                                        ;                                                                                  ⁢                    x                                    ,                  y                                                                                                                          =                                        ⁢                    0                                    ,                  …                  ⁢                                                                          ,                  7                                                              ⁢                                          ⁢                      a            =                          16              ·                              (                                                      P                    ⁡                                          (                                                                        -                          1                                                ,                        7                                            )                                                        +                                      P                    ⁡                                          (                                                                        7                          ,                                                -                        1                                            )                                                                      )                                              ⁢                                          ⁢                                    b              =                              (                                                      17                    ·                    H                                    +                  16                                )                                      >>            5                    ⁢                                          ⁢                                    c              =                              (                                                      17                    ·                    V                                    +                  16                                )                                      >>            5                    ⁢                                          ⁢                      H            =                                          ∑                                  x                  =                  1                                4                            ⁢                              x                ·                                  [                                                            P                      ⁡                                              (                                                                              3                            +                            x                                                    ,                                                      -                            1                                                                          )                                                              -                                          P                      ⁡                                              (                                                                              3                            -                            x                                                    ,                          1                                                )                                                                              ]                                                              ⁢                                          ⁢                      V            =                                          ∑                                  y                  =                  1                                4                            ⁢                              y                ·                                  [                                                            P                      ⁡                                              (                                                                                                            -                              1                                                        ,                            3                                                    +                          y                                                )                                                              -                                          P                      ⁡                                              (                                                                                                            -                              1                                                        ,                            3                                                    -                          Y                                                )                                                                              ]                                                                                        (        32        )            
By the way, with the JVT coding method, a single macroblock can be divided into a single or plural motion predicted blocks of 16×16, 16×8, 8×8 and the motion compensation process can be performed. Each 8×8 motion predicted block, can be further divided into 8×8, 8×4, 4×8, or 4×4 sub-blocks and the motion compensation process can be performed.
Image reproduction apparatuses for DVD can perform fast playback and fast backward playback as well as normal speed playback from media. FIG. 10 shows a rough construction of the image reproduction apparatus 1.
In this image reproduction apparatus 1, reading position information S1 added to picture information of the MPEG2 format reproduced from a medium 2 is supplied to a reading position indicator 3. When a playback mode signal S2 for fast playback or fast backward playback is received from the outside, this reading position indicator 3 makes a reader 4 specify a reading position suitable for the specified playback mode on the basis of the reading position information S1. This reader 4 uncontinuously reads the bit stream of picture information of the MPEG2 format from the medium 2 according to reading positions specified by the reading position indicator 3.
An image decoding unit 5 performs decoding with the MPEG2 based on the bit stream supplied from the reader 4, so as to restore high fine images from the bit stream.
At this time, in the image reproduction apparatus 1, the reading position indicator 3 should specify reading positions so as to compatibly decode outputs from the reader 4 as a bit stream of the MPEG2 format.
That is, the bit stream of the MPEG2 format for the first I-picture (intra-coded picture, or intra-frame coded picture) and following several P-pictures (frame forward prediction coded pictures) of each GOP of normal picture compression information is extracted from the original bit stream of the picture information in the MPEG2 format. In the MPEG2 method, a P-picture uses an I-picture or a P-picture just before the P-picture as a predicted frame, so that even a stream extracted for fast playback can be compatibly decoded as a stream of the MPEG2 format.
For example, as shown in FIG. 11(A), in the bit stream of the MPEG2 format, I-pictures (I0, I1, . . . ) and P-pictures (P0, P1 . . . ) are encoded at prescribed periods on a GOP basis and then B-pictures (bidirectional prediction coded picture) (B0, B1, . . . ) are encoded and inserted therebetween. That is, as shown in FIG. 11(B), the bitstream of I0, P3, P6, . . . , In, Pn+3 is extracted for fast playback from the bitstream of I0, B1, B2, P3, B4, B5, P6, . . . , In, Bn+1, Bn+2, Pn+3 which is for normal speed playback.
The JVT coding method can use a plurality of predicted frames for a P-picture and also can use B-pictures, which can not be used in the MPEG2 method, as predicted frames. However, even if I-pictures and P-pictures are extracted, as in the case of the conventional MPEG2 method, the relationship for prediction is not fixed, so that predicted frames cannot be made simpler and therefore, the extracted stream cannot be decoded correctly, which is a problem.
That is, in the bitstream of the JVT coding method as shown in FIG. 12(A), not only I-pictures (I0, I1, . . . ) and P-pictures (P0, P1, . . . ) which appear at prescribed periods on a GOP basis but also B-pictures (B0, B1, . . . ) are inserted therebetween as predicted pictures for the P-pictures. That is, as shown in FIG. 12(B), even when the bitstream of I0, P3, P6, . . . , In, Pn+3 is extracted for fast playback from the bit stream of I0, B1, B2, P3, B4, B5, P6, . . . , In, Bn+1, Bn+2, Pn+3 which is for normal speed playback, predicted pictures for P-pictures do not exist, with the result that a problem arises in which correct decoding is difficult to be performed.